"""
全局工具字典管理器
提供便捷的工具信息访问和查询方法
"""

from typing import Dict, Any, List, Optional

from config.logging_config import get_logger
from constant.tool_dict_config import toolDictConfig

logger = get_logger(__name__)


class ToolsDictManager:
    """工具字典管理器"""

    @staticmethod
    def get_base_tool_info(tool_name: str) -> Optional[Dict[str, Any]]:
        """获取基础工具信息
        
        Args:
            tool_name: 基础工具名称
            
        Returns:
            工具信息字典，包含tool_name和params等
        """
        return toolDictConfig.get_base_tool_info(tool_name)

    @staticmethod
    def get_mcp_tool_info(mcp_tool_key: str) -> Optional[Dict[str, Any]]:
        """获取MCP工具信息
        
        Args:
            mcp_tool_key: MCP工具键值（格式：服务名.工具名）
            
        Returns:
            工具信息字典，包含mcp_service, tool_name, parameters等
        """
        return toolDictConfig.get_mcp_tool_info(mcp_tool_key)

    @staticmethod
    def list_all_base_tools() -> List[str]:
        """列出所有基础工具名称"""
        return list(toolDictConfig.get_base_tools_dict().keys())

    @staticmethod
    def list_all_mcp_tools() -> List[str]:
        """列出所有MCP工具键值"""
        return list(toolDictConfig.get_mcp_tools_dict().keys())

    @staticmethod
    def get_tools_stats() -> Dict[str, Any]:
        """获取工具统计信息"""
        return toolDictConfig.get_stats()


# 创建全局实例
tools_dict_manager = ToolsDictManager()
